package Mangos::DB::Mangos::QuestTemplate;

use strict;

use base qw(Mangos::DB::Mangos);

__PACKAGE__->meta->setup
(
    table   => 'quest_template',

    columns => 
    [
        entry                  => { type => 'integer', not_null => 1 },
        Method                 => { type => 'integer', default => 2, not_null => 1 },
        ZoneOrSort             => { type => 'integer', default => '0', not_null => 1 },
        SkillOrClass           => { type => 'integer', default => '0', not_null => 1 },
        MinLevel               => { type => 'integer', default => '0', not_null => 1 },
        QuestLevel             => { type => 'integer', default => '0', not_null => 1 },
        Type                   => { type => 'integer', default => '0', not_null => 1 },
        RequiredRaces          => { type => 'integer', default => '0', not_null => 1 },
        RequiredSkillValue     => { type => 'integer', default => '0', not_null => 1 },
        RepObjectiveFaction    => { type => 'integer', default => '0', not_null => 1 },
        RepObjectiveValue      => { type => 'integer', default => '0', not_null => 1 },
        RequiredMinRepFaction  => { type => 'integer', default => '0', not_null => 1 },
        RequiredMinRepValue    => { type => 'integer', default => '0', not_null => 1 },
        RequiredMaxRepFaction  => { type => 'integer', default => '0', not_null => 1 },
        RequiredMaxRepValue    => { type => 'integer', default => '0', not_null => 1 },
        SuggestedPlayers       => { type => 'integer', default => '0', not_null => 1 },
        LimitTime              => { type => 'integer', default => '0', not_null => 1 },
        QuestFlags             => { type => 'integer', default => '0', not_null => 1 },
        SpecialFlags           => { type => 'integer', default => '0', not_null => 1 },
        CharTitleId            => { type => 'integer', default => '0', not_null => 1 },
        PlayersSlain           => { type => 'integer', default => '0', not_null => 1 },
        BonusTalents           => { type => 'integer', default => '0', not_null => 1 },
        PrevQuestId            => { type => 'integer', default => '0', not_null => 1 },
        NextQuestId            => { type => 'integer', default => '0', not_null => 1 },
        ExclusiveGroup         => { type => 'integer', default => '0', not_null => 1 },
        NextQuestInChain       => { type => 'integer', default => '0', not_null => 1 },
        SrcItemId              => { type => 'integer', default => '0', not_null => 1 },
        SrcItemCount           => { type => 'integer', default => '0', not_null => 1 },
        SrcSpell               => { type => 'integer', default => '0', not_null => 1 },
        Title                  => { type => 'text', length => 65535 },
        Details                => { type => 'text', length => 65535 },
        Objectives             => { type => 'text', length => 65535 },
        OfferRewardText        => { type => 'text', length => 65535 },
        RequestItemsText       => { type => 'text', length => 65535 },
        EndText                => { type => 'text', length => 65535 },
        ObjectiveText1         => { type => 'text', length => 65535 },
        ObjectiveText2         => { type => 'text', length => 65535 },
        ObjectiveText3         => { type => 'text', length => 65535 },
        ObjectiveText4         => { type => 'text', length => 65535 },
        ReqItemId1             => { type => 'integer', default => '0', not_null => 1 },
        ReqItemId2             => { type => 'integer', default => '0', not_null => 1 },
        ReqItemId3             => { type => 'integer', default => '0', not_null => 1 },
        ReqItemId4             => { type => 'integer', default => '0', not_null => 1 },
        ReqItemId5             => { type => 'integer', default => '0', not_null => 1 },
        ReqItemId6             => { type => 'integer', default => '0', not_null => 1 },
        ReqItemCount1          => { type => 'integer', default => '0', not_null => 1 },
        ReqItemCount2          => { type => 'integer', default => '0', not_null => 1 },
        ReqItemCount3          => { type => 'integer', default => '0', not_null => 1 },
        ReqItemCount4          => { type => 'integer', default => '0', not_null => 1 },
        ReqItemCount5          => { type => 'integer', default => '0', not_null => 1 },
        ReqItemCount6          => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceId1           => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceId2           => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceId3           => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceId4           => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceCount1        => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceCount2        => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceCount3        => { type => 'integer', default => '0', not_null => 1 },
        ReqSourceCount4        => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOId1     => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOId2     => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOId3     => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOId4     => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOCount1  => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOCount2  => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOCount3  => { type => 'integer', default => '0', not_null => 1 },
        ReqCreatureOrGOCount4  => { type => 'integer', default => '0', not_null => 1 },
        ReqSpellCast1          => { type => 'integer', default => '0', not_null => 1 },
        ReqSpellCast2          => { type => 'integer', default => '0', not_null => 1 },
        ReqSpellCast3          => { type => 'integer', default => '0', not_null => 1 },
        ReqSpellCast4          => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemId1       => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemId2       => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemId3       => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemId4       => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemId5       => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemId6       => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemCount1    => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemCount2    => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemCount3    => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemCount4    => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemCount5    => { type => 'integer', default => '0', not_null => 1 },
        RewChoiceItemCount6    => { type => 'integer', default => '0', not_null => 1 },
        RewItemId1             => { type => 'integer', default => '0', not_null => 1 },
        RewItemId2             => { type => 'integer', default => '0', not_null => 1 },
        RewItemId3             => { type => 'integer', default => '0', not_null => 1 },
        RewItemId4             => { type => 'integer', default => '0', not_null => 1 },
        RewItemCount1          => { type => 'integer', default => '0', not_null => 1 },
        RewItemCount2          => { type => 'integer', default => '0', not_null => 1 },
        RewItemCount3          => { type => 'integer', default => '0', not_null => 1 },
        RewItemCount4          => { type => 'integer', default => '0', not_null => 1 },
        RewRepFaction1         => { type => 'integer', default => '0', not_null => 1 },
        RewRepFaction2         => { type => 'integer', default => '0', not_null => 1 },
        RewRepFaction3         => { type => 'integer', default => '0', not_null => 1 },
        RewRepFaction4         => { type => 'integer', default => '0', not_null => 1 },
        RewRepFaction5         => { type => 'integer', default => '0', not_null => 1 },
        RewRepValue1           => { type => 'integer', default => '0', not_null => 1 },
        RewRepValue2           => { type => 'integer', default => '0', not_null => 1 },
        RewRepValue3           => { type => 'integer', default => '0', not_null => 1 },
        RewRepValue4           => { type => 'integer', default => '0', not_null => 1 },
        RewRepValue5           => { type => 'integer', default => '0', not_null => 1 },
        RewHonorableKills      => { type => 'integer', default => '0', not_null => 1 },
        RewOrReqMoney          => { type => 'integer', default => '0', not_null => 1 },
        RewMoneyMaxLevel       => { type => 'integer', default => '0', not_null => 1 },
        RewSpell               => { type => 'integer', default => '0', not_null => 1 },
        RewSpellCast           => { type => 'integer', default => '0', not_null => 1 },
        RewMailTemplateId      => { type => 'integer', default => '0', not_null => 1 },
        RewMailDelaySecs       => { type => 'integer', default => '0', not_null => 1 },
        PointMapId             => { type => 'integer', default => '0', not_null => 1 },
        PointX                 => { type => 'float', default => '0', not_null => 1, precision => 32 },
        PointY                 => { type => 'float', default => '0', not_null => 1, precision => 32 },
        PointOpt               => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmote1          => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmote2          => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmote3          => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmote4          => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmoteDelay1     => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmoteDelay2     => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmoteDelay3     => { type => 'integer', default => '0', not_null => 1 },
        DetailsEmoteDelay4     => { type => 'integer', default => '0', not_null => 1 },
        IncompleteEmote        => { type => 'integer', default => '0', not_null => 1 },
        CompleteEmote          => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmote1      => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmote2      => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmote3      => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmote4      => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmoteDelay1 => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmoteDelay2 => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmoteDelay3 => { type => 'integer', default => '0', not_null => 1 },
        OfferRewardEmoteDelay4 => { type => 'integer', default => '0', not_null => 1 },
        StartScript            => { type => 'integer', default => '0', not_null => 1 },
        CompleteScript         => { type => 'integer', default => '0', not_null => 1 },
    ],

    primary_key_columns => [ 'entry' ],
);

1;

package Mangos::DB::Mangos::QuestTemplate::Manager;

use strict;
use warnings;

use base 'Rose::DB::Object::Manager';

sub object_class { 'Mangos::DB::Mangos::QuestTemplate' }

__PACKAGE__->make_manager_methods('quest_template');

1;
